package di.module;

import com.xgggh.redpack.ui.home.ActivityFragment;
import com.xgggh.redpack.ui.home.CreateFragment;
import com.xgggh.redpack.ui.home.HomeFragment;
import com.xgggh.redpack.ui.home.NavHomeActivity;
import com.xgggh.redpack.ui.home.PersonalFragment;
import com.xgggh.redpack.ui.home.RankFragment;
import com.xgggh.redpack.ui.login.LoginActivity;
import com.xgggh.redpack.ui.login.LogoutActivity;
import com.xgggh.redpack.ui.login.StartUpActivity;
import com.xgggh.redpack.ui.my.MyWalletActivity;
import com.xgggh.redpack.ui.pay.PayActivity;
import com.xgggh.redpack.ui.redpack.RedPackActivity;

import dagger.Module;
import dagger.android.ContributesAndroidInjector;
import di.scope.ActivityScope;
import di.scope.FragmentScope;

@Module
public abstract class ActivityModule {
    @ActivityScope
    //@ContributesAndroidInjector(modules = { UserModule.class})
    @ContributesAndroidInjector
    abstract StartUpActivity contributeStartUpActivityInjector();


    @ActivityScope
    @ContributesAndroidInjector
    abstract LoginActivity contributeLoginActivityInjector();


    @ActivityScope
    @ContributesAndroidInjector
    abstract LogoutActivity contributeLogoutActivityInjector();

    @ActivityScope
    @ContributesAndroidInjector
    abstract NavHomeActivity contributeNavHomeActivityInjector();

    @FragmentScope
    @ContributesAndroidInjector
    abstract HomeFragment contributeHomeFragmentInjector();

    @FragmentScope
    @ContributesAndroidInjector
    abstract RankFragment contributeRankFragmentInjector();

    @FragmentScope
    @ContributesAndroidInjector
    abstract CreateFragment contributeCreateFragmentInjector();

    @FragmentScope
    @ContributesAndroidInjector
    abstract ActivityFragment contributeActivityFragmentInjector();

    @FragmentScope
    @ContributesAndroidInjector
    abstract PersonalFragment contributePersonalFragmentInjector();


    @ActivityScope
    @ContributesAndroidInjector
    abstract RedPackActivity contributeRedPackActivityInjector();

    @ActivityScope
    @ContributesAndroidInjector
    abstract MyWalletActivity contributeMyWalletActivityInjector();

    @ActivityScope
    @ContributesAndroidInjector
    abstract PayActivity contributePayActivityInjector();


}
